﻿using CRM.Infrastructure.Attr;
using CRM.Infrastructure.Dto.Request.Customer;
using CRM.Infrastructure.Dto.Response;
using CRM.Infrastructure.Dto.Response.Customer;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CRM.Service.Interface
{
    /// <summary>
    /// 客户
    /// </summary>
    [Provider_]
    public interface I_Customer_Service
    {
        Task<Api_Response_Dto> Add_Customer(Customer_Request_Dto dto);

        /// <summary>
        /// 获取客户列表 只能查看自己所属的客户和公海客户
        /// </summary>
        /// <param name="page"></param>
        /// <param name="limit"></param>
        /// <param name="key"></param>
        /// <param name="uid"></param>
        /// <returns></returns>
        Task<Api_Response_Dto> Get_Customers(int page, int limit, string key, string uid);

        /// <summary>
        /// 新增客户跟进记录
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public Task<Api_Response_Dto> Add_Record(Record_Request_Dto dto);

        /// <summary>
        /// 获取单个客户跟进记录
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<Api_Response_Dto> Get_Single_Customer_Records(string id);

        Task<Api_Response_Dto> Add_Vip(Vip_Request_Dto dto);
        Task<Api_Response_Dto> Get_Level();
        Task<Api_Response_Dto> Get_Origin();
        Task<Api_Response_Dto> Get_Type();
        Task<Api_Response_Dto> Get_user();
        Task<Api_Response_Dto> Get_Customer_Details(string id);
        Task<Api_Response_Dto> Update_Customer_Details(Customer_Response_Dto dto);
        Task<Api_Response_Dto> Update_Customer(string id, string uId);
        Task<Api_Response_Dto> Get_Customers_HighSeas(int page, int limit, string key);
    }
}
